// 新增8个LED灯，使用P3的IO口进行控制。使用高电平控制点亮（注意P2使用低电平控制点亮，和它有区别）。
// 实现一个滚动流水灯的效果，流水灯按照矩形的顺序流动。
#include <REGX52.H>

void delay_ms(unsigned int ms)
{
    unsigned int i, j;
    for (i = 0; i < ms; i++)
    {
        for (j = 0; j < 123; j++)
            ;
    }
}

void main()
{
    unsigned char i;
    //0111 1111
    unsigned char temp1= 0x80;
    unsigned char temp2= 0x01;
    // 全部置为1，熄灭
    P2=0xff;
    P3=0x00;
    while (1)
    {
        temp1= 0x80; // P2的初始值
        temp2= 0x01; // P3的初始值
        for (i = 0; i < 8; i++)
        {
            P2 = ~temp1;
            delay_ms(300);
            // temp = temp << 1;
            temp1 >>= 1;
        }
        P2=0xff;
        for (i = 0; i < 8; i++)
        {
            P3 = temp2;
            delay_ms(300);
            // temp = temp << 1;
            temp2 <<= 1;
        }
        P3=0x00;
    }
}